<?php
//这是公用入口模块
class main extends spController
{
	function __construct(){ // 公用
		parent::__construct(); // 这是必须的
		$this->tpl_title = "主体模块|主题部分";
	}
	
	function index(){ // 这里是首页
		

		$this->contents = "主体模块首页内容";
		$this->display("index/main_index.html");
	}
	
	function page(){ // 其他内容
		$this->contents = "主体模块其他内容";
		$this->display("index/main_page.html");
	}
	
	function login()
	{		
		$userObj = spClass("user"); // 实例化lib_user类
		if( $username = $this->spArgs("username") ){ // 已经提交，这里开始进行登录验证
			$password = $this->spArgs("password");
			
			// 使用spVerifier进行第一次检查
			$rows = array
			(
				'username' => $username, 
				'password' => $password
			);
			$results = $userObj->spVerifier($rows);
			
			if( false == $results ){ // 当spVerifier返回false的时候，则是表示已经通过验证，数据是合格的
			
				// 使用lib_user类中我们新建的userlogin方法来验证用户名和密码
				if( false == $userObj->userlogin($username, $password) ){
					// 登录失败，提示后跳转回登录页面
					$this->error("用户名/密码错误，请重新输入！", spUrl("main","index"));
					
				}else{
					// 成功登录，跳转。这里要进行判断一下：
					// 如果用户角色是GBADMIN（管理员）则跳转到admin/index的管理中心
					// 如果用户角色是GBUSER（普通会员）则跳转回首页
					$useracl = spClass("spAcl")->get(); // 通过acl的get可以获取到当前用户的角色标识
					if( "GBADMIN" == $useracl ){
						$this->success("登录成功，欢迎您，管理员！", "member.php".spUrl("main","site"));
						//$this->jump("member.php"); // 跳转到speedphp.com 						
					}else{
						$this->success("登录成功，欢迎您，尊敬的会员！", spUrl("main","index"));
					}
				}
			}else{
				// $results不是false，所以没有通过验证，错误信息是$results
				// dump($results);
				foreach($results as $item){ // 开始循环错误信息的规则，这里只有用户名
					// 每一个规则，都有可能返回多个错误信息，所以这里我们也循环$item来获取多个信息
					foreach($item as $msg){ 
						// 虽然我们使用了循环，但是这里我们只需要第一条出错信息就行。
						// 所以取到了第一条错误信息的时候，我们使用$this->error来提示并跳转
						$this->error($msg,spUrl("main","index"));
					}
				}
			}
		}
		else 
		{
			//$this->jump(spUrl("main","index"));
		$url = spUrl("main","index");
		echo "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
			<script>function sptips(){alert(\"请输入用户名和密码！\");location.href=\"{$url}\";}</script>
			</head><body onload=\"sptips()\"></body></html>";
		exit;
		}
	}
	
	// 退出登录
	 function logout()
	 {
		// 这里是PHP.net关于删除SESSION的方法
		$_SESSION = array();
		if (isset($_COOKIE[session_name()])) {setcookie(session_name(), '', time()-42000, '/');}
		spClass('spAcl')->set("");
		session_destroy();
		// 跳转回首页
		$this->success("已退出，返回首页！", spUrl("main","index"));
	}
	function sc()
	{
		echo '成功';
	}
	
	function zhuce()
	{
		$this->contents = "这是注册页面";
		$this->display("index/main_registered.html");		
	}
	function registered()
	{		
		$data = $this->spArgs();
		$data[acl] = 'GBUSER'; 
		$data['addtime']=strtotime(date("Y-m-d H:i:s"));
		$data['lasttime']=strtotime(date("Y-m-d H:i:s"));
		$data['password']=md5($this->spArgs('password'));
		$user['username'] = $this->spArgs('username');
		
		$Model = spClass('user');
		
		$rows = array
		(
			'username' => $this->spArgs('username'), 
			'password' => $this->spArgs('password'),
		);
		$results = $Model->spVerifier($rows);
		if( false == $results )
		{
			if($rs = $Model->find($user))
			{
				$this->error("用户已存在！",spUrl("main","zhuce"));
			}
			else{	
				if($Model->create($data))
        		{          	
          			$this->success("注册成功，欢迎您的加入", spUrl("main","index"));
        		}
			}
		}
		else
		{
			foreach($results as $item)
			{ 	
				// 开始循环错误信息的规则，这里只有用户名
				// 每一个规则，都有可能返回多个错误信息，所以这里我们也循环$item来获取多个信息
				foreach($item as $msg)
				{ 
					// 虽然我们使用了循环，但是这里我们只需要第一条出错信息就行。
					// 所以取到了第一条错误信息的时候，我们使用$this->error来提示并跳转
					$this->error($msg,spUrl("main","zhuce"));
				}
			}
		}        
	}
	
	
	
	
	
	//lj
}	